package cn.dglydrpy.study.algorithm.od;

import java.util.Scanner;

/**
 * @author Yyy
 * @date 2024/11/8 16:57
 * @description
 * 给定一个表示地图高度的一维数组，计算其中山峰的数量。
 * 山峰定义为高度大于相邻位置的高度或在地图边界且高度大于相邻的高度。
 输入：
[0,1,4,3,1,0,0,1,2,3,1,2,1,0]
 输出：
 3
 */
public class Od0027_HillClimbing {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()){
            String input = scanner.nextLine();
            String substring = input.substring(1, input.length() - 1);
            String[] split = substring.split(",");
            
            int[] arr = new int[split.length];
            for(int i=0;i<arr.length;i++){
                arr[i] = Integer.valueOf(split[i]);
            }
            
            int ans = myAnswer(arr);
            System.out.println(ans);

            int answer1 = answer1(arr);
            System.out.println(answer1);
        }
        
    }

    private static int myAnswer(int[] arr) {
        
        if(arr.length == 0){
            return 0;
        }

        if(arr.length == 1){
            return arr[0] > 0 ? 1 : 0;
        }
        
        int ans = 0;
        for(int i=0;i<arr.length;i++){
            if(i == 0){
                if(arr[i] > arr[i+1]){
                    System.out.println(i);
                    ans ++;
                }
            }else if(i == arr.length-1){
                if(arr[i] > arr[i-1]){
                    System.out.println(i);
                    ans ++;
                }
            }else{
                if(arr[i] > arr[i+1] && arr[i] > arr[i-1]){
                    System.out.println(i);
                    ans ++;
                }
            }
        }
        
        return ans;
    }

    // 返回地图中山峰的数量
    public static int answer1(int[] arr) {
        int length = arr.length;
        int num = 0;
        for (int i = 0; i < length; i++) {
            // 判断是否为首位置
            if (i == 0) {
                // 判断是否为山峰
                if (arr[i] > arr[i + 1]) {
                    System.out.println(i);
                    num++;
                }
            } else if (i == length - 1) {
                // 判断是否为山峰
                if (arr[i] > arr[i - 1]) {
                    System.out.println(i);
                    num++;
                }
            } else {
                // 判断是否为山峰
                if (arr[i] >= arr[i + 1] && arr[i] > arr[i - 1]) {
                    System.out.println(i);
                    num++;
                }
            }
        }
        return num;
    }
}
